package com.xiahui.day11.Test9;

/**
 * 为什么计算hashCode要使用31作为权重
 * 1.因为JDK也使用31
 * 2.因为31是一个特殊的质数 任何数乘以31 等于这个数左移5位 减去这个数 本身
 * n * 31 = (n << 5) - n
 * 位运算符效率是最高 但是优先级是最低的
 * 总结：因为使用31计算hash值效率更高
 */
public class TestPrime {
    public static void main(String[] args) {
        int a = 11;
        System.out.println(a * 31);
        System.out.println((a << 5) - a);
    }
}

